Data stored at a storage component often is susceptible to corruption due to a variety of factors, including static discharge, parasitic capacitance, structural imperfections, and the like. Accordingly, in using a storage component, many conventional processing devices utilize error detection/correction techniques whereby error correcting code (ECC) data is generated for a corresponding storage location (e.g., a cache line) and stored with the corresponding storage location at the storage component. Accordingly, the storage location can be periodically accessed and the integrity of the data stored in the storage location can be verified based on the corresponding ECC data.
The storage of data to a storage location of a storage device during a store operation typically entails the generation of a new ECC value for the storage location. In many instances, data being stored to the storage location may overwrite only a portion of the storage location. However, in the event that an error exists in the remaining portion of the storage location that is not overwritten during a store operation, the new ECC value is calculated using the invalid data and the old ECC value of the storage location is overwritten with the new ECC value, thereby making it impossible to detect the bit error during subsequent accesses to the storage location because the new ECC value was calculated using the erroneous data and thus incorrectly validates the erroneous data. Without the proper precautions, subsequent use of the erroneous data from the storage location can cause errors in calculations or other operations dependent on the data.
To prevent the use of erroneous data, in certain conventional devices the store pipeline is stalled for each store operation until the data previously stored at the corresponding storage location can be verified as valid, or corrected if identified as invalid, before the next store operation can proceed. As a result, the performance of store operations, and thus the performance of the processing device, is negatively impacted. Further, other consumers of the data being stored, such as other processing devices, may be delayed while waiting for the verification of the old data to complete before the new data is available for access. Accordingly, an improved technique for processing store operations for a processing device would be advantageous.
The use of the same reference symbols in different drawings indicates similar or identical items.